08 - Types/01 - Elements.js (20 lines of code) (raw):

// This is using a made up type definition language. So far, this is not a // complete type definition. It's a placeholder for describing terminology. type ReactNode = ReactElement | ReactFragment | ReactText; type ReactElement = ReactCompositeElement | ReactNativeElement; type ReactNativeElement = { type: string, props: { children: ReactNodeList }, key: string | boolean | number | null, ref: string | null }; type ReactCompositeElement<TProps> = { type : ReactClass<TProps> | ReactModule<TProps>, props : TProps, key: string | boolean | number | null, ref: string | null }; type ReactFragment = Array<ReactNode | ReactFragment | ReactEmpty>; type ReactNodeList = ReactNode | ReactEmpty; type ReactText = string | number; type ReactEmpty = null | undefined | boolean;